Recently, a demand for compact information recording/reproducing devices (storage devices) having a large capacity has rapidly increased. Among the devices, NAND type flash memories and compact Hard Disk Drives (HDDs) have rapidly enhanced a recording density and formed a large market. Under the circumstances, several ideas of novel memories aiming at greatly exceeding a limit of a recording density have been proposed. Among the proposed ideas, attention is paid to a non-volatile semiconductor memory using a resistance change material having a low resistance state and a high resistance state.
In the non-volatile semiconductor memory, a low resistance state and a high resistance state can be repeatedly changed by applying a voltage pulse to a variable resistance element, and data is recorded as binary data “0” and “1” corresponding to the two states. It is expected that the non-volatile semiconductor memory can record data at multi levels by causing the variable resistance element to have plural level of low resistances or plural level of high resistances or the both. In addition, it is also expected that a recording density as well as a recording capacity of the non-volatile semiconductor memory are improved by shrinking the variable resistance element.
However, when shrinkage and multi-level storage of the variable resistance element is promoted, there is a possibility that the variable resistance element is partially broken by an unexpectedly large voltage and current applied to the variable resistance element when it is the forming, set, or reset. This partial breakdown of the variable resistance element can provide a tendency that a so-called probability of erroneous switching becomes high, the probability of erroneous switching being a probability that data is erroneously written or erased when the data is written to or erased from the variable resistance element. Further, that partial breakdown of the variable resistance element can also provide a disadvantage that the number of times of rewriting the element is restricted to a small number of times.